import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

//Runnable实现类代码：
class Runableimpl implements Runnable {

   @Override
   public void run() {
      System.out.println("给我叫个美女");
      try {
         Thread.sleep(1000);
      } catch (InterruptedException e) {
         e.printStackTrace();
      }
      System.out.println(Thread.currentThread().getName() + ":美女来了");
      System.out.println("————— 完毕 —————");
   }
}

public class ThreadPoolDemo {
   public static void main(String[] args) {
      // 1.创建线程池对象
      ExecutorService service = Executors.newFixedThreadPool(2);
      Runableimpl r = new Runableimpl();
      // new Thread(r, "线程1").start(); // 自己创建线程对象的方式

      // 从线程池中获取线程对象,然后调用MyRunnable中的run()
      // 注意：submit方法调用结束后，程序并不终止，是因为线程池控制了线程的关闭。将使用完的线程又归还到了线程池中
      service.submit(r);
      service.submit(r);
      // service.shutdown(); // 关闭线程池   
   }
}